import axios from 'axios'
import {setLOADING,getLOADING} from '../utils/utils'
import storage from 'good-storage'
// axios 配置
axios.defaults.timeout = 60000;//访问接口超出时间
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';//请求头设置
/*
*    多域名配置
*   1.mainURL：主域名 
*/
let domain = {
    mainURL:"http://pay.1207soft.com/UserService",
    extra:"http://pay.1207soft.com:8080",
    proxy:"api",
}
//公共参数配置
let comm_params = {
    AppId:'B207E275A16C41CB903A3E1CF1539995',
}
//POST传参序列化
axios.interceptors.request.use((config) => {
    if(!getLOADING().loadStatus){
        setLOADING({loadStatus:true,loading:true})
    }
    return config;
},(error) =>{
    // _.toast("错误的传参", 'fail');
    return Promise.reject(error);
});

//返回状态判断
axios.interceptors.response.use((res) =>{
    if(!res.data.success){
        return Promise.resolve(res);
    }
    return res;
}, (error) => {
    //_.toast("网络异常", 'fail');
    return Promise.reject(error);
});

export function fetch(url, params={}) {
    params = Object.assign({},comm_params,params)
    //测试
    //params.openid = 'or7Q-xLt1BqOuWOqU4didzUVDlBg' 
    return new Promise((resolve, reject) => {
        params.type = params.type?params.type:"post"
        axios[params.type](url, params)
        .then(response => {
            resolve(response.data)
        }, err => {
            reject(err);
        })
        .catch((error) => {
            reject(error)
        })
    })
}


//接口导出
export default {
    // 通用ajax,为了加载,arr为promise数组
    ajax(arr){
        Promise.all(arr).then((result) => {
            console.log("调用完成")
            setLOADING({loadStatus:false})
        }).catch((error) => {
            console.log("错误")
            setLOADING({loadStatus:false})
            console.log(error)      // 失败了，打出 '失败'
        })
    },
    // 注册新用户
    register(params){
        params.CCD = 11008
        return fetch(domain.mainURL,params)
    },
    //微信获取openId
    getOpenId(code){
        return fetch(domain.extra+'/XingPay/public/OAuthRedirect?code='+code,{type:"get"})
    },
    //获取用户公共信息
    getUserInfo(params){
        params.CCD = 11011
        return fetch(domain.mainURL,params)
    },
    //获取卡列表
    getCardList(params){
        params.CCD = 11013
        return fetch(domain.mainURL,params)   
    },
    //添加银行卡
    addCard(params){
        params.CCD = 11006
        return fetch(domain.mainURL,params)
    },
    //发起快捷支付订单
    preCreateQuickpay(params){
        params.CCD = 11007
        return fetch(domain.mainURL,params)
    },
    //获取订单结果
    getOrder(params){
        params.CCD = 11009
        return fetch(domain.mainURL,params)
    },
    //获取订单列表
    GetQuickPayList(params){
        params.CCD = 11012
        return fetch(domain.mainURL,params)
    }
}


